// 数据映射文件

// 服务点数据映射
export function servicePointMap (data) {
  if (!data || !Array.isArray(data)) {
    return []
  }
  return data.map(item => {
    return {
      pointAvatar: item.head_img, // 服务点头像
      pointNameByNoCity: `${item.store_info}`, // 服务点名称
      pointCity: item.city, // 服务点名称
      pointName: `${item.city} • ${item.store_info}`, // 服务点名称
      pointAddress: item.store_address, // 服务点地址
      pointId: item.store_id, // 服务点id
      storeId: item.store_id, // 服务点门店id
      pointInfo: item.store_info, // 服务点信息
      popularityTip: item.popularity_tip, // 服务点人气
      pointType: item.store_type, // 店铺类型
      latitude: item.latitude, // 维度
      longitude: item.longitude, // 经度
      distence: item.distence && item.distence.toFixed(2), // 距离
      maxDeliveryDistence: item.max_delivery_val, // 最大配送费范围
      serviceCenterId: item.store_service_id // 服务点的服务中心id
    }
  })
}

// 格式化多规格商品，形成多规格商品数组
// 示例：
// [
//   { "key_id": 81, "key_name": "尺寸", "val_id": 1005, "val_name": "中号", "goods_attr_id": "1005",
//     "goods_attr_key_val_list": [
//       { "key_id": 869, "key_name": "颜色", "val_id": 1014, "val_name": "白色", "goods_attr_id": "1014", "goods_attr_key_val_list": [] },
//       { "key_id": 869, "key_name": "颜色", "val_id": 1015, "val_name": "黑色", "goods_attr_id": "1015", "goods_attr_key_val_list": [] }
//     ]
//   },
//   { "key_id": 81, "key_name": "尺寸", "val_id": 1006, "val_name": "大号", "goods_attr_id": "1006",
//     "goods_attr_key_val_list": [
//       { "key_id": 869, "key_name": "颜色", "val_id": 1014, "val_name": "白色", "goods_attr_id": "1014", "goods_attr_key_val_list": [] },
//       { "key_id": 869, "key_name": "颜色", "val_id": 1015, "val_name": "黑色", "goods_attr_id": "1015", "goods_attr_key_val_list": [] }
//     ]
//   }
// ]
// 格式化为
// [
//   { parentId: 81, parentName: "尺寸", childList: [
//       { childId: 1005, childName: "中号", childAttrId: "1005", childList: [] },
//       { childId: 1006, childName: "大号", childAttrId: "1006", childList: [] }
//     ]
//   },
//   { parentId: 81, parentName: "颜色", childList: [
//       { childId: 1014, childName: "白色", childAttrId: "1014", childList: [] },
//       { childId: 1015, childName: "黑色", childAttrId: "1015", childList: [] }
//     ]
//   }
// ]
export function formatMultiSkuGoods (multiSkuList) {
  if (!multiSkuList) {
    return []
  }
  let target = []
  // 递归列表
  function recursiveList(multiSkuList) {
    if (multiSkuList[0] && multiSkuList[0].goods_attr_key_val_list && multiSkuList[0].goods_attr_key_val_list.length !== 0) {
      target.push(formatGoodsSkuToTree(multiSkuList))
      recursiveList(multiSkuList[0].goods_attr_key_val_list)
    }
    else {
      target.push(formatGoodsSkuToTree(multiSkuList))
    }
  }
  recursiveList(multiSkuList)
  return target
}

// 格式化多规格商品，形成规格中某一规格的属性树形结构
const formatGoodsSkuToTree = function (goodsSku) {
  return goodsSku.reduce((prev, curr) => ({
    parentId: curr.key_id,
    parentName: curr.key_name,
    childList: prev.childList.concat({
      childId: curr.val_id,
      childName: curr.val_name,
      childAttrId: curr.goods_attr_id, // 规格标识
      childStatus: curr.status, // 是否可以点击 - true:可以点击  false:不能点击
      childList: curr.goods_attr_key_val_list && formatGoodsSkuToTree(curr.goods_attr_key_val_list)
    })
  }), {
    childId: [],
    childName: [],
    childList: []
  });
}

// 店铺商品详情信息数据映射
export function storeGoodsDetailsMap (data) {
  return {
    goodsId: data.goods_id, // 商品Id
    goodsStatus: data.goods_status, // 商品状态：0 下架 ，1，正常；2，已售罄；3打烊
    goodsName: data.goods_title, // 商品名称
    goodsDesc:data.goods_desc,
    goodsPrice: data.goods_price, // 商品价格
    goodsMemberPrice: data.member_goods_price, // 商品会员价格
    goodsUnit: data.sku_unit, // 商品单位，比如: 台
    goodsSoldOut: data.sold_quantity, // 商品销量
    stockNum: data.toatl_amout, // 商品库存
    goodsThumbnailImg: data.goods_thumbnail_url ? data.goods_thumbnail_url : data.goods_gallery_urls[0], // 商品缩略图
    swiperImgs: data.goods_gallery_urls, // 商品轮播图
    detailsImgs: data.goods_detail, // 商品详情图
    goodsLabel: data.goods_label, // 商品标签
    goodsPlatform: data.platform_type, // 商品平台类型：1：拼多多 2：淘宝 3：京东 4：巷友
    goodsSourceType: data.goods_source_type, // 商品来源类型：1:巷友  2:1688
    goodsBuyType: data.goods_buy_type, // 购买类型: 2:秒杀 3:立即取货 4:预售
    seckillStartTime: data.start_time, // 秒杀开始时间
    seckillEndTime: data.end_time, // 秒杀开始时间
    seckillStatus: data.seckill_state, // 秒杀状态： 1 热抢中， 2，开抢中 or 已结束 ，3未开抢
    joinSeckillNeedBean: data.involvement_pea, // 参加秒杀所需要秒杀豆
    skuType: data.sku_type, // 商品规格类型：1：单规格商品 2：多规格商品
    singleSku: data.goods_sku, // 单规格商品信息
    multiSkuList: formatMultiSkuGoods(data.goods_attr_key_val_list), // 多规格商品树形结构
    multiSkuInfo: data.goods_sku_map, // 多规格商品信息
    isLimitBuy: data.purchase_limit && data.purchase_limit === 2 ? true : false, // 是否限购：1 不限购， 2限购
    isLike: data.is_collection && data.is_collection === 1 ? true : false // 是否收藏 0：未收藏 1：收藏
  }
}

// 店铺信息数据映射
export function storeInfoMap (data) {
  return {
    serviceCenterId: data.store_service_id, // 服务中心Id
    storeId: data.store_id, // 店铺Id
    storeImg: data.head_img, // 店铺图片
    firstDesc: data.first_desc, // 店铺第二段描述
    secondDesc: data.second_desc, // 店铺第二段描述
    swiperImgs: data.store_real_map, // 店铺轮播图
    storeName: data.store_info || data.store_name, // 店铺名称
    storePhone: data.store_phone, // 店铺电话
    storeAddress: data.store_address, // 店铺地址
    isOpening: data.business_status, // 是否营业 true：营业 false：打烊
    openingTime: data.business_desc || data.business_desc_v2, // 营业时间
    distence: data.distence, // 距离
    minDeliveryPrice: data.delivery_money, // 起送价
    deliveryTime: data.delivery_time, // 预计送达时间
    cooperationType: data.cooperation_type //店铺类型
  }
}

// 店铺商品列表数据映射
export function storeGoodsListMap (data) {
  if (!data || !Array.isArray(data)) {
    return []
  }
  return data.map(item => {
    return {
      storeId: item.store_id,
      goodsId: item.goods_id, // 商品Id
      goodsStatus: item.goods_status, // 商品状态：0 下架 ，1，正常；2，已售罄；3打烊
      commission2: item.commission2, //佣金比例
      goodsName: item.goods_title, // 商品名称
      goodsPrice: item.goods_price, // 商品价格
      goodsMemberPrice: item.member_goods_price, // 商品会员价格
      goodsSoldOut: item.sales_volume, // 商品销量
      stockNum: item.stock_amount, // 商品库存
      goodsThumbnailImg: item.goods_thumbnail_url ? item.goods_thumbnail_url : item.goods_gallery_urls[0], // 商品缩略图
      // swiperImgs: item.goods_gallery_urls, // 商品轮播图
      // detailsImgs: item.goods_detail, // 商品详情图
      goodsLabel: item.goods_label, // 商品标签
      // goodsPlatform: item.platform_type, // 商品平台类型：1：拼多多 2：淘宝 3：京东 4：巷友
      skuType: item.sku_type, // 商品规格类型：1：单规格商品 2：多规格商品
      singleSku: item.goods_sku, // 单规格商品信息
      multiSkuList: formatMultiSkuGoods(item.goods_attr_key_val_list), // 多规格商品树形结构
      multiSkuInfo: item.goods_sku_map, // 多规格商品信息
      isLimitBuy: item.purchase_limit && item.purchase_limit === 2 ? true : false // 是否限购：1 不限购， 2限购
    }
  })
}

// 购物车优惠信息数据映射
export function cartDiscountsMap (data) {
  return {
    cartGoodsOrgPrice: data.rawOrderMoney, // 订单原价
    cartGoodsRealPayPrice: data.realOrderMoney, // 订单实付金额
    cartGoodsTotalPrice: data.realProductMoney, // 订单产品金额金额：产品实际金额-优惠金额-幸运都抵扣
    carriagePrice: data.carriage, // 配送费
    packingPrice: data.packingFee, // 包装费
    freeCarriageDiffPrice: data.freeCarriageNeed, // 还需要多少钱免配送费
    usableCouponList: data.availableCoupons, // 可用的优惠券列表
    usableCouponId: data.couponMinimalId, // 可使用的优惠券Id
    usableCouponName: data.couponMinimalName, // 可使用的优惠券名称
    usableCouponDiffPrice: data.couponMinimalPriceNeed, // 还差多少钱可使用的优惠券
    useCouponId: data.usedProductCouponId, // 使用优惠券Id
    useCouponName: data.usedProductCouponName // 使用优惠券名称
  }
}

// 购物车列表数据映射
export function cartListMap (data) {
  if (!data || !Array.isArray(data)) {
    return []
  }
  return data.map(item => {
    return {
      cartId: item.cart.id, // 商品购物车ID
      goodsSkuId: item.cart.goodsSkuId, // 商品 skuId（规格Id）
      goodsSpuId: item.cart.goodsSpuId, // 商品 spuId (商品Id)
      goodsName: item.cart.goodsTitle, // 商品名称
      goodsImg: item.cart.goodsThumbnailUrl, // 商品图片
      skuName:item.skuName,
      goodsPrice: item.goodsPrice, // 商品原价
      goodsMemberPrice: item.memberPrice, // 商品会员价格
      realPay: item.realPay, // 优惠后的总价：商品优惠后的价格 * 商品数量
      currentNum: item.cart.skuAmount, // 商品购物车当前数量
      stockNum: item.stock, // 商品库存
      stockStatus: item.stockStatus, // 商品库存状态: 1.库存充足 2.库存紧张 3.已售罄 4.库存不足
      stockStatusDesc: item.stockStatusDesc // 商品库存状态描述
    }
  })
}

// 购车车配套商品数据映射
export function cartRecommendGoodMap (data) {
  if (!data || !Array.isArray(data)) {
    return []
  }
  return data.map(item => {
    return {
      goodsSkuId: item.skuId, // 商品 skuId（规格Id）
      goodsSpuId: item.spuId, // 商品 spuId (商品Id)
      goodsImg: item.goodsThumbnailUrl, // 商品图片
      goodsName: item.goodsTitle // 商品名称
    }
  })
}

// 第三方（拼多多、京东）优惠券商品数据映射
export function couponGoodsMap (data, type) {
  let _data;
  if (!data || !Array.isArray(data)) {
    return []
  }
  _data = data.map(item => {
    let goodsInfo = type === 'recommend' ? item.goods : item
    return {
      goodsPlatform: goodsInfo.platform_type, // 商品平台
      goodsTemplateType: item.template_type, // 商品模本类型
      goodsId: goodsInfo.goods_id, // 商品id
      goodsName: goodsInfo.goods_name, // 商品名称
      goodsThumbnailImg: goodsInfo.goods_thumbnail_url, // 商品图片
      goodsGalleryImg: goodsInfo.goods_gallery_urls, // 商品多图图片
      goodsLabel: goodsInfo.goods_label, // 商品标签
      goodsPrice: goodsInfo.price, // 商品价格
      couponAfterPrice: goodsInfo.lowestPrice, // 商品券后价
      couponPrice: goodsInfo.coupon_discount, // 优惠券金额
      saveMoney: goodsInfo.save_money, // 节省的钱
      isHasCoupon: goodsInfo.has_coupon, // 是否有优惠券： true: 有优惠券  false: 无优惠券
      returnBeanNum: goodsInfo.pea_amount, // 商品收货返豆数量
      storeId: goodsInfo.mall_id, // 店铺Id
      storeName: goodsInfo.mall_name, // 店铺名称
      saleOutNum: goodsInfo.sold_quantity || goodsInfo.sales_tip // 已售数量
    }
  });
  //过滤不要的商品
  let __data = [];
  for (let i = 0;i<_data.length;i++){
    let item = _data[i];
    if(!item.hasOwnProperty('goodsName')){
      continue;
    }
    if(item['goodsName'].indexOf('烟') > -1){
      continue;
    }
    __data.push(item);
  }
  return __data;
}
